<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<p>css中的1px并不等于设备的1px</p>

<p>
    在css中我们一般使用px作为单位，在<strong>桌面浏览器</strong>中css的1个像素往往都是对应着电脑屏幕的1个物理像素，
    这可能会造成我们的一个<del>错觉</del>，那就是css中的像素就是设备的物理像素。但实际情况却并非如此，
    css中的像素只是一个抽象的单位，<ins>在不同的设备或不同的环境中，</ins>css中的1px所代表的设备物理像素是不同的。
    在为桌面浏览器设计的网页中，我们无需对这个津津计较，但在移动设备上，必须弄明白这点。在早先的移动设备中，
    屏幕像素密度都比较低，如<em>iphone3</em>，它的分辨率为320x480，在<em>iphone3</em>上，一个css像素确实是等于一个屏幕
    物理像素的。后来随着技术的发展，移动设备的屏幕像素密度越来越高，从iphone4开始，苹果公司便推出了所谓的
    Retina屏，分辨率提高了一倍，变成640x960，但屏幕尺寸却没变化，这就意味着同样大小的屏幕上，像素却多了
    一倍，这时，一个css像素是等于两个物理像素的。其他品牌的移动设备也是这个道理。例如安卓设备根据屏幕像素
    密度可分为<em>ldpi、mdpi、hdpi、xhdpi</em>等不同的等级，分辨率也是五花八门，安卓设备上的一个css像素相当于多
    少个屏幕物理像素，也因设备的不同而不同，没有一个定论。
</p>

<p>
    还有<strong>一个因素</strong>也会引起css中px的变化，那就是用户缩放。例如，当用户把页面放大一倍，那么css中1px所代表的物
    理像素也会增加一倍；反之把页面缩小一倍，css中1px所代表的物理像素也会减少一倍。关于这点，在文章后面的部分还会讲到。
</p>

<p>
    在移动端浏览器中以及某些桌面浏览器中，window对象有一个devicePixelRatio属性，它的官方的定义为：<strong>设备物
    理像素和设备独立像素的比例，也就是 devicePixelRatio = 物理像素 / 独立像素。</strong>css中的px就可以看做
    是设备的独立像素，所以通过devicePixelRatio，我们可以知道该设备上一个css
    像素代表多少个物理像素。例如，在Retina屏的iphone上，devicePixelRatio的值为2，也就是说1个css像素
    相当于2个物理像素。但是要注意的是，devicePixelRatio在不同的浏览器中还存在些许的兼容性问题，所以我们
    现在还并不能完全信赖这个东西，<s>具体的情况可以看下这篇文章。</s>
</p>
</body>
</html>